



export const CommonService = { 
   
    unixToDate(unixTimestamp) {
    // 创建一个新的 Date 对象，将 Unix 时间戳（以毫秒为单位）作为参数
    let date = new Date(unixTimestamp * 1000);
    // 获取年
    let year = date.getFullYear();
    // 获取月，注意月份从 0 开始，所以需要加 1
    let month = (date.getMonth() + 1).toString().padStart(2, '0');
    // 获取日
    let day = date.getDate().toString().padStart(2, '0');
   let hour = date.getHours();
   let minute = date.getMinutes() ;
   let second = date.getSeconds()

    // 拼接成所需的格式
    let formattedDate = `${year}-${month}-${day} ${hour}:${minute}:${second}`;
    return formattedDate;
  },
    formatDate(value){
    value = new Date(value);

    try{
        const result = value.toISOString();
          return result.slice(0, 10);
    }catch(err){
        return value.toLocaleDateString('zh-CN', {
            day: '2-digit',
            month: '2-digit',
            year: 'numeric'
        });
    }

},
  formatFullDate(value) {
    value = new Date(value);

    try {
        // 设置时区为中国上海
        const options = {
            timeZone: 'Asia/Shanghai',
            year: 'numeric',
            month: '2-digit',
            day: '2-digit',
            hour: '2-digit',
            minute: '2-digit'
        };

        // 使用 Intl.DateTimeFormat 进行格式化
        const formatter = new Intl.DateTimeFormat('zh-CN', options);
        return formatter.format(value);
    } catch (err) {
        // 如果出现错误，使用默认的 toLocaleDateString 方法
        return value.toLocaleDateString('zh-CN', {
            day: '2-digit',
            month: '2-digit',
            year: 'numeric',
            hour: '2-digit',
            minute: '2-digit'
        });
    }
},
// 解析 JWT 的 payload 部分
parseJwtPayload(token) {
    try {
        // 检查token是否存在
        if (!token) {
            console.warn('JWT token is null or undefined');
            return null;
        }
        
        // JWT 由三部分组成，使用 . 分割
        const parts = token.split('.');
        if (parts.length !== 3) {
            // 如果分割后的部分不是 3 个，说明不是有效的 JWT
            console.warn('Invalid JWT token format');
            return null;
        }
        // 获取中间的 payload 部分
        const payloadBase64 = parts[1];
        // Base64 解码
        const decodedPayload = atob(payloadBase64.replace(/-/g, '+').replace(/_/g, '/'));
        // 将解码后的字符串转换为 JSON 对象  
        const bytes = new Uint8Array([...decodedPayload].map(c => c.charCodeAt(0)));
        const decodedString = new TextDecoder('utf-8').decode(bytes); 
        let payload =  JSON.parse(decodedString); 
        return payload;
    } catch (error) {
        console.error('Failed to parse JWT payload:', error);
        return null;
    }
}
}

